<?php
//date格式化一个本地的日期时间
//格式串：(1)普通字符，原样显示 (2)特殊字符，具有特殊含义
echo date("北京时间：Y年m月d日 H:i:s.v e\n"); //北京时间：2025年10月31日 08:11:30.000 Asia/Shanghai
//创建DateTime对象并利用构造方法进行初始化
$d=new DateTime(); //2025-10-31 08:17:39.058512 Asia/Shanghai
$d=new DateTime("2000-10-1 12:34:56"); //2000-10-01 12:34:56.000000
$d=new DateTime("2000-10-1"); //2000-10-01 00:00:00.000000
$d=new DateTime("2000-10"); //2000-10-01 00:00:00.000000
$d=new DateTime("20001001 123456"); //2000-10-01 12:34:56.000000
$d=new DateTime("123456"); //2025-10-31 12:34:56.000000
$d=new DateTime("12:34:56"); //2025-10-31 12:34:56.000000
$d=new DateTime("12:34"); //2025-10-31 12:34:00.000000
$d=new DateTime("2000/10/01 12:34:56"); //2000-10-01 12:34:56.000000
print_r($d);
//日期的格式化
//在调用对象的属性或方法时用->，而不是 =>
$a=array("name"=>"张三","age"=>18);
echo $d->format("Y年m月d日 H:i:s.v e\n"); //new DateTime("2000/10/01 12:34:56");
//获取UNIX时间戳，单位是秒，从UTC 1970-1-1零时到现在的秒数
$d=new DateTime("1970/1/1", new DateTimeZone("UTC"));
echo $d->format("Y年m月d日 H:i:s.v e\n"); //1970年01月01日 00:00:00.000 UTC
echo $d->getTimestamp(),"\n"; // 0
//根据时间戳来创建日期对象
$d=new DateTime("@1761873099"); //时间戳整数前一定要加@
echo $d->format("Y-m-d H:i:s e\n"); //2025-10-31 01:11:39 +00:00
//修改日期对象的时区，可以显示同一时刻不同地区本地的时间
$d->setTimezone(new DateTimeZone("PRC"));
echo $d->format("Y-m-d H:i:s e\n"); //2025-10-31 09:11:39 PRC